There a great number of instances in computer user interfaces where an object is represented by a bounding box. In many instances, handles are provided for manipulating the bounding box. Common places for such handles are at each corner and often at the mid-point of each side. However, it is not always intuitive for a user to understand how to manipulate such handles.
There are many instances where there is a need to divide a fixed space into subdivisions. In general, this arises in a wide variety of fields. One field of particular interest is partitioning computer storage media, such as a hard disk or removable media such as a Syquest or Bernoulli cartridge, magneto-optic disk, recordable CD, or other media. This problem becomes more significant as the storage capacity of such devices continues to increase. This problem also arises in other fields, such as real estate (land, such as subdevelopments), architecture (e.g. allocating space in a building), page layout (publishing) and other graphic arts, as well as other fields.
Traditionally this subdividing is done in a variety of ways, but many of these ways share some common characteristics. The number of subdivisions or the minimum size of a subdivision is generally selected so, as a first approximation, the space can be divided into equal subdivisions based on one of these limitations. For example, if a space is to be divided four ways, then the space can be divided into quarters (a page divided top to bottom and left to right, or, alternatively, into four horizontal segment of equal size). Certain situation-specific criteria may then call for adjustment of these sizes. For example, in partitioning a hard disc, certain functions may be allocated larger or smaller subdivisions. A 2 gigabyte drive might be divided into two 650 megabyte partitions, each as a scratch space for assembling a CD, and two 350 megabyte (or one 700 megabyte) partitions for applications, operating system software, and the like. The variety of situations and partitioning schemes is essentially limitless.
A number of applications are in use today for using a computer to set the size of something. In a typical storage-media partitioning application, the application prompts the user to select a device to partition, then provides some basic information about the device, including the size of the device and sometimes additional information (e.g. the nature of the media, manufacturer, size of logical blocks, version of driver software). The application prompts the user to define the size of (and usually name) a first partition, then reports how much space is left. If sufficient space remains, the application prompts the user to define a second partition, and so on, until the user has defined as many partitions as desired, or until the available space is fully allocated. In most applications, the actual partitioning is not performed until the user has allocated space to extent desired or possible.
This process works well if the user has a good idea in advance as to how the available space should be allocated. However, if the user allocates space for a first partition, then for a second, then realizes that the first partition is too large or too small and needs to be adjusted, the user interface breaks down. In many applications, the user must delete the first partition, then create an alternate first partition with the correct size. Choosing the size to allocate is sometimes difficult, particularly if there are several partitions and trade-offs are required in order to allocate space efficiently.
Other applications also are in use for using a computer to set the size of something. For example, in a page layout program, a first text section may be allocated the top half of the first column on a page, and a second text section be allocated the bottom half of the first column and all of the second column. To modify the size of the allocation for the first text section requires multiple steps, which depend on whether the user is expanding or reducing the allocation. If the first text section will be given less space, the user must first reduce the size of the first text allocation, then increase the size of the second text allocation to remove the free space. If the first text section will be given more space, the user must first reduce the size of the second text section to allow room for the first text section, then enlarge the first text section. In some instances, depending on the feedback available from the program, it may require several iterations to correctly allocate the available layout space. These principles apply in other programs as well, such as fitting subunits into a fixed space, such as modular furniture systems into a building floor plan or housing units into a development.
There are other applications that provide various resizing characteristics but do not face the constraints of interest here. In one notable example, many spreadsheets allow reformatting by increasing the size of a row or column by simply moving one boundary, typically the lower (for a row) or right (for a column) boundary. This change is reflected in the entire row or column. This system, however, does not have to face a fixed size constraint and so as one row or column is increased or decreased in size, and subsequent rows or columns are shifted in or out by the same amount and the total space of the spreadsheet increases or decreases by that same amount.
A different variety of partitioning is seen in the prior art in the form of a split-pane window. This is commonly found in word processors and spreadsheets where the user may want convenient, simultaneous access to two disparate parts of a document. This also differs from the present invention in a number of ways. First, the split allows a view into different portions of the whole document, but does not represent or lead to a partitioning of the entire document. Second, although this does lead to a partitioning of the display window, that display window also can be enlarged or shrunk, typically by applying a sizing command, so the window does not represent an object which is necessarily limited in size.
Turning to handles for the bounding rectangle of a partition or other object, one problem with past solutions is that the handle is relatively small, generally intended to be merely an enlarged portion of the line or intersection that handle controls. A user may need some practice or some historical association with other interfaces to understand that the handle is something to be selected and held, then manipulated in order to effect some change on the corresponding object.